package cn.remex.task;

import cn.remex.core.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import java.util.Date;

/**
 * 名称：
 * 缩写：
 * 用途：
 * Created by yangy on 2016/12/24 0024.
 */
public class TaskCenterDaemon extends Job implements TaskConst {
	@Override
	public void jobExecute(JobExecutionContext ctx) throws JobExecutionException {
		//心跳时间
		Date curHeartbeatTime = new Date();
		logger.info("信审守护线程心跳服务: 失败重启={},上次={},下次={}", ctx.getRefireCount(), ctx.getPreviousFireTime(), ctx.getNextFireTime());


		//检查当前所有正在运行的分析器，移除无用的分析器
		TaskCenter.checkAndRemoveController(curHeartbeatTime);

		//检查当前所有排队的分析器，启动需要启动的分析器
		TaskCenter.checkAndBootController(curHeartbeatTime);

		//检查当前允许WAITING->DOING类型的等待中的JOB，在expectStartTime到达时间时将Job置为DOING
		TaskCenter.checkAndSetDoingController(curHeartbeatTime);
	}
}
